1. Field
This disclosure relates to generating traffic for testing a network or network device.
2. Description of the Related Art
In many types of communications networks, each message to be sent is divided into portions of fixed or variable length. Each portion may be referred to as a packet, a frame, a cell, a datagram, a data unit, or other unit of information, all of which are referred to herein as packets.
Each packet contains a portion of an original message, commonly called the payload of the packet. The payload of a packet may contain data, or may contain voice or video information. The payload of a packet may also contain network management and control information. In addition, each packet contains identification and routing information, commonly called a packet header. The packets are sent individually over the network through multiple switches or nodes. The packets are reassembled into the message at a final destination using the information contained in the packet headers, before the message is delivered to a target device or end user. At the receiving end, the reassembled message is passed to the end user in a format compatible with the user's equipment.
Communications networks that transmit messages as packets are called packet switched networks. Packet switched networks commonly contain a mesh of transmission paths which intersect at hubs or nodes. At least some of the nodes may include a switching device or router that receives packets arriving at the node and retransmits the packets along appropriate outgoing paths. Packet switched networks are governed by a layered structure of industry-standard protocols. Layers 1, 2, and 3 of the structure are the physical layer, the data link layer, and the network layer, respectively.
Layer 1 protocols define the physical (electrical, optical, or wireless) interface between nodes of the network. Layer 1 protocols include various Ethernet physical configurations, the Synchronous Optical Network (SONET) and other optical connection protocols, and various wireless protocols such as WiFi.
Layer 2 protocols govern how data is logically transferred between nodes of the network. Layer 2 protocols include the Ethernet, Asynchronous Transfer Mode (ATM), Frame Relay, and Point to Point Protocol (PPP).
Layer 3 protocols govern how packets are routed from a source to a destination along paths connecting multiple nodes of the network. The dominant layer 3 protocols are the well-known Internet Protocol version 4 (IPv4) and version 6 (IPv6). A packet switched network may need to route IP packets using a mixture of the Ethernet, ATM, FR, and/or PPP layer 2 protocols.
Historically, each router parsed each received packet to extract a destination address from a network layer header contained within the packet. The router then used the destination address to determine the route or path along which the packet should be retransmitted. A typical packet may pass through a plurality of routers, each of which repeats the actions of extracting the destination address and determining the route or path along which the packet should be retransmitted.
Multiprotocol Label Switching (MPLS) is a method for efficiently routing data through large networks. With MPLS, each packet is given a label that identifies the packet as a member of a particular forwarding equivalence class (FEC), where an FEC is defined to be a collection of packets (of any type or protocol) to be transmitted from a specific source to a specific destination along an associated label switched path (LSP) through the network. The MPLS label is a fixed-length field that may contain both forwarding and priority information. The MPLS label is commonly placed in the packet between the layer 2 header and the layer 3 header, but may also be embedded within the layer 2 header. The nodes of a network that employs MPLS consist of label switching routers (LSRs). Upon receiving a packet, each LSR determines how to forward the packet based on the label and, in some cases, the input port at which the packet was received. Thus the LSRs do not have to parse the packet and extract a destination address from a layer 3 header in order to determine how to forward the packet. Each LSR may change, or switch, the label prior to forwarding the packet. In some cases, a packet may include a stack of MPLS labels and an LSR may “pop” the stack to expose a new label prior to forwarding a packet.
The number of nodes of a network, the number and arrangement of paths which interconnect the nodes with each other, and the paths that connect the network with source and destination devices are determined by the network topology and are thus effectively fixed for the duration of a test session. However, the MPLS labels are negotiated between the LSRs and may be dynamic. For example, the MPLS labels assigned to various LSPs may be partially or completely different each time a network is tested. Further, MPLS labels may change during a test session, for example if an LSR fails or is rebooted during the test session, or if a path between two LSR's fails during a test session.
In order to test a packet switched network or a device included in a packet switched communications network, test traffic comprising a large number of packets may be generated, transmitted into the network at one or more ports, and received at different ports. In this context, the term “port” refers to a communications connection between the network and the equipment used to test the network. The received test traffic may be analyzed to measure the performance of the network. Each port connected to the network may be both a source of test traffic and a destination for test traffic. Each port may emulate a plurality of logical source or destination addresses. The number of ports and the communications paths that connect the ports to the network are typically fixed for the duration of a test session. The internal structure of the network may change during a test session, for example due to failure of a communications path or hardware device.
A series of packets originating from a single source and having a specific type of packet and a specific rate will be referred to herein as a “stream.” A source may be, for example, a port on a network interface. A source may support multiple outgoing streams simultaneously and concurrently, for example to accommodate multiple packet types, rates, or destinations. “Simultaneously” means “at exactly the same time.” “Concurrently” means “within the same time.”
For the purpose of reporting network traffic data, the packets within a stream may be organized into flows, where a “flow” is any plurality of packets for which network traffic statistics are accumulated and reported. The packets in a given flow may be distinguished by a flow identifier contained in each packet. The flow identifier may be, for example, a dedicated identifier field, an address, a port number, a tag, or some other field or combination of fields within each data unit.
A plurality of concurrent streams may be combined to form the output from a traffic generator, which will be referred to herein as “test traffic”. The streams within the test traffic may be combined through interleaving. The interleaving may be balanced, unbalanced, and distributed among the represented streams. To test a modern “triple play” network and network equipment, the test traffic may contain simulated data, audio, and video streams.
Throughout this description, elements appearing in block diagrams are assigned three-digit or four-digit reference designators, where the two least significant digits are specific to the element and the most significant digit or digits are the figure number. An element that is not described in conjunction with a block diagram may be presumed to have the same characteristics and function as a previously-described element having a reference designator with the same two least significant digits.
In block diagrams, arrow-terminated lines may indicate data paths rather than signals. Each data path may be multiple bits in width. For example, each data path may consist of 4, 8, 16, 32, 64, or more parallel connections.